function setupCategoryGrid() {
    $("#categorys").jqGrid({
        url : 'getCategoryList.action',
        datatype : "local",
        colNames : [ 'ID', '分类名', '备注' ],
        colModel : [ {
            name : 'id',
            index : 'id',
            width : 60,
            sorttype : "int"
        }, {
            name : 'categoryName',
            index : 'categoryName',
            width : 120
        }, {
            name : 'categoryRemark',
            index : 'categoryRemark',
            width : 600
        } ],
        rowNum : 10,
        height : 'auto',
        rowList : [ 10, 20, 30 ],
        pager : '#pager',
        sortname : 'id',
        viewrecords : true,
        sortorder : "asc",
        caption : "分类信息一览",
        multiselect : true,
        loadError : dealError
    });
    $("#categorys").jqGrid('navGrid', '#pager', {
        edit : false,
        add : false,
        del : false
    });
}

function setupCategoryToolbar() {
    $("#add").button({
        icons : {
            primary : "ui-icon-plus"
        }
    }).click(function() {
        $("#id").val('');
        $("#detail").dialog("open");
    });

    $("#edit").button({
        icons : {
            primary : "ui-icon-pencil"
        }
    }).click(function() {
        var selects = $('#categorys').jqGrid('getGridParam', 'selarrrow');
        if (!selects || selects == '') {
            message('请选择需要更新的分类信息！', 'alert', 'top');
            return false;
        }
        if (selects.length > 1) {
            message('请只选择一条需要更新的分类信息！', 'alert', 'top');
            return false;
        }
        var params = {
            selectIds : selects.toString()
        };
        $.ajax({
            url : "updateInitCategory.action",
            type : "post",
            dataType : "json",
            data : params,
            success : showCategory,
            error : dealError
        });
    });

    $("#delete").button({
        icons : {
            primary : "ui-icon-close"
        }
    }).click(function() {
        var selects = $('#categorys').jqGrid('getGridParam', 'selarrrow');
        if (!selects || selects == '') {
            message('请选择需要删除的分类信息！', 'alert', 'top');
            return false;
        }
        confirm('是否确定删除？','center', doDelete);
    });
    
    $('#showInfo').button().click(function() {
        var pId = '';
        if ($('#level2').val() && $('#level2').val() != '') {
            pId = $('#level2').val();
        } else if ($('#level1').val()) {
            pId = $('#level1').val();
        }
        $('#parentId').val(pId);
        $("#categorys").jqGrid('setGridParam',{
            url:"getCategoryList.action?parentId="+pId,
            page:1,
            datatype:'json'
        }).trigger('reloadGrid');
    });
}

function doDelete() {
    var selects = $('#categorys').jqGrid('getGridParam', 'selarrrow');
    var params = {
        selectIds : selects.toString()
    };
    $.ajax({
        url : "deleteCategory.action",
        type : "post",
        dataType : "json",
        data : params,
        success : reload,
        error : dealError
    });
}

function validateCategory() {
    if ($('#name').val() == '') {
        message('请输入分类名！', 'alert', 'top');
        return false;
    }
    return true;
}

function setupCategoryDialog() {
    $("#detail").dialog({
        autoOpen : false,
        show : "slide",
        height : 165,
        width : 280,
        modal : true,
        buttons : {
            登录 : function() {
                if (!validateCategory()) {
                    return false;
                }
                var params = $("input").serialize();
                $.ajax({
                    url : "saveCategory.action",
                    type : "post",
                    dataType : "json",
                    data : params,
                    success : reload,
                    error : dealError
                });
                $(this).dialog("close");
                return false;
            },
            取消 : function() {
                $(this).dialog("close");
                return false;
            }
        },
        close : function() {
            $("#id").val("").removeClass("ui-state-error");
            $("#name").val("").removeClass("ui-state-error");
            $("#remark").val("").removeClass("ui-state-error");
        }
    });
}

function reload() {
    $("#categorys").trigger("reloadGrid");
}

function showCategory(data, status) {
    $("#detail").dialog("open");
    $("#id").val(data.id);
    $("#name").val(data.name);
    $("#remark").val(data.remark);
}

function setupLevel() {
    initLevel();
    $('#level1').change(function() {
        if ($('#level1').val() == '') {
            $("#level2 option").remove();
            return false;
        }
        var params = {
            parentId : $('#level1').val()
        };
        $.ajax({
            url : "listLevel.action",
            type : "post",
            dataType : "json",
            data : params,
            success : function(data) {
                $("#level2 option").remove();
                var option = "<option value=''></option>";
                $("#level2").append(option);
                var categorys = data.categorys;
                for ( var i = 0; i < categorys.length; i++) {
                    var id = categorys[i].id;
                    var name = categorys[i].name;
                    var option = "<option value=" + id + ">" + name + "</option>";
                    $("#level2").append(option);
                }
            },
            error : dealError
        });
    });
}

function initLevel() {
    var params = {
        parentId : ''
    };
    $.ajax({
        url : "listLevel.action",
        type : "post",
        dataType : "json",
        data : params,
        success : function(data) {
            $("#level1 option").remove();
            var option = "<option value=''></option>";
            $("#level1").append(option);
            var categorys = data.categorys;
            for ( var i = 0; i < categorys.length; i++) {
                
                var id = categorys[i].id;
                var name = categorys[i].name;
                var option = "<option value=" + id + ">" + name + "</option>";
                $("#level1").append(option);
            }
        },
        error : dealError
    });
}
